lt2(0, s1(X)) -> true
lt2(s1(X), 0) -> false
lt2(s1(X), s1(Y)) -> lt2(X, Y)
append2(nil, Y) -> Y
append2(add2(N, X), Y) -> add2(N, append2(X, Y))
split2(N, nil) -> pair2(nil, nil)
split2(N, add2(M, Y)) -> f_14(split2(N, Y), N, M, Y)
f_14(pair2(X, Z), N, M, Y) -> f_26(lt2(N, M), N, M, Y, X, Z)
f_26(true, N, M, Y, X, Z) -> pair2(X, add2(M, Z))
f_26(false, N, M, Y, X, Z) -> pair2(add2(M, X), Z)
qsort1(nil) -> nil
qsort1(add2(N, X)) -> f_33(split2(N, X), N, X)
f_33(pair2(Y, Z), N, X) -> append2(qsort1(Y), add2(X, qsort1(Z)))
↳ QTRS
↳ Non-Overlap Check
lt2(0, s1(X)) -> true
lt2(s1(X), 0) -> false
lt2(s1(X), s1(Y)) -> lt2(X, Y)
append2(nil, Y) -> Y
append2(add2(N, X), Y) -> add2(N, append2(X, Y))
split2(N, nil) -> pair2(nil, nil)
split2(N, add2(M, Y)) -> f_14(split2(N, Y), N, M, Y)
f_14(pair2(X, Z), N, M, Y) -> f_26(lt2(N, M), N, M, Y, X, Z)
f_26(true, N, M, Y, X, Z) -> pair2(X, add2(M, Z))
f_26(false, N, M, Y, X, Z) -> pair2(add2(M, X), Z)
qsort1(nil) -> nil
qsort1(add2(N, X)) -> f_33(split2(N, X), N, X)
f_33(pair2(Y, Z), N, X) -> append2(qsort1(Y), add2(X, qsort1(Z)))
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
lt2(0, s1(X)) -> true
lt2(s1(X), 0) -> false
lt2(s1(X), s1(Y)) -> lt2(X, Y)
append2(nil, Y) -> Y
append2(add2(N, X), Y) -> add2(N, append2(X, Y))
split2(N, nil) -> pair2(nil, nil)
split2(N, add2(M, Y)) -> f_14(split2(N, Y), N, M, Y)
f_14(pair2(X, Z), N, M, Y) -> f_26(lt2(N, M), N, M, Y, X, Z)
f_26(true, N, M, Y, X, Z) -> pair2(X, add2(M, Z))
f_26(false, N, M, Y, X, Z) -> pair2(add2(M, X), Z)
qsort1(nil) -> nil
qsort1(add2(N, X)) -> f_33(split2(N, X), N, X)
f_33(pair2(Y, Z), N, X) -> append2(qsort1(Y), add2(X, qsort1(Z)))
lt2(0, s1(x0))
lt2(s1(x0), 0)
lt2(s1(x0), s1(x1))
append2(nil, x0)
append2(add2(x0, x1), x2)
split2(x0, nil)
split2(x0, add2(x1, x2))
f_14(pair2(x0, x1), x2, x3, x4)
f_26(true, x0, x1, x2, x3, x4)
f_26(false, x0, x1, x2, x3, x4)
qsort1(nil)
qsort1(add2(x0, x1))
f_33(pair2(x0, x1), x2, x3)
F_33(pair2(Y, Z), N, X) -> QSORT1(Y)
F_33(pair2(Y, Z), N, X) -> APPEND2(qsort1(Y), add2(X, qsort1(Z)))
F_14(pair2(X, Z), N, M, Y) -> F_26(lt2(N, M), N, M, Y, X, Z)
F_14(pair2(X, Z), N, M, Y) -> LT2(N, M)
QSORT1(add2(N, X)) -> F_33(split2(N, X), N, X)
LT2(s1(X), s1(Y)) -> LT2(X, Y)
SPLIT2(N, add2(M, Y)) -> F_14(split2(N, Y), N, M, Y)
APPEND2(add2(N, X), Y) -> APPEND2(X, Y)
F_33(pair2(Y, Z), N, X) -> QSORT1(Z)
QSORT1(add2(N, X)) -> SPLIT2(N, X)
SPLIT2(N, add2(M, Y)) -> SPLIT2(N, Y)
lt2(0, s1(X)) -> true
lt2(s1(X), 0) -> false
lt2(s1(X), s1(Y)) -> lt2(X, Y)
append2(nil, Y) -> Y
append2(add2(N, X), Y) -> add2(N, append2(X, Y))
split2(N, nil) -> pair2(nil, nil)
split2(N, add2(M, Y)) -> f_14(split2(N, Y), N, M, Y)
f_14(pair2(X, Z), N, M, Y) -> f_26(lt2(N, M), N, M, Y, X, Z)
f_26(true, N, M, Y, X, Z) -> pair2(X, add2(M, Z))
f_26(false, N, M, Y, X, Z) -> pair2(add2(M, X), Z)
qsort1(nil) -> nil
qsort1(add2(N, X)) -> f_33(split2(N, X), N, X)
f_33(pair2(Y, Z), N, X) -> append2(qsort1(Y), add2(X, qsort1(Z)))
lt2(0, s1(x0))
lt2(s1(x0), 0)
lt2(s1(x0), s1(x1))
append2(nil, x0)
append2(add2(x0, x1), x2)
split2(x0, nil)
split2(x0, add2(x1, x2))
f_14(pair2(x0, x1), x2, x3, x4)
f_26(true, x0, x1, x2, x3, x4)
f_26(false, x0, x1, x2, x3, x4)
qsort1(nil)
qsort1(add2(x0, x1))
f_33(pair2(x0, x1), x2, x3)
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
F_33(pair2(Y, Z), N, X) -> QSORT1(Y)
F_33(pair2(Y, Z), N, X) -> APPEND2(qsort1(Y), add2(X, qsort1(Z)))
F_14(pair2(X, Z), N, M, Y) -> F_26(lt2(N, M), N, M, Y, X, Z)
F_14(pair2(X, Z), N, M, Y) -> LT2(N, M)
QSORT1(add2(N, X)) -> F_33(split2(N, X), N, X)
LT2(s1(X), s1(Y)) -> LT2(X, Y)
SPLIT2(N, add2(M, Y)) -> F_14(split2(N, Y), N, M, Y)
APPEND2(add2(N, X), Y) -> APPEND2(X, Y)
F_33(pair2(Y, Z), N, X) -> QSORT1(Z)
QSORT1(add2(N, X)) -> SPLIT2(N, X)
SPLIT2(N, add2(M, Y)) -> SPLIT2(N, Y)
lt2(0, s1(X)) -> true
lt2(s1(X), 0) -> false
lt2(s1(X), s1(Y)) -> lt2(X, Y)
append2(nil, Y) -> Y
append2(add2(N, X), Y) -> add2(N, append2(X, Y))
split2(N, nil) -> pair2(nil, nil)
split2(N, add2(M, Y)) -> f_14(split2(N, Y), N, M, Y)
f_14(pair2(X, Z), N, M, Y) -> f_26(lt2(N, M), N, M, Y, X, Z)
f_26(true, N, M, Y, X, Z) -> pair2(X, add2(M, Z))
f_26(false, N, M, Y, X, Z) -> pair2(add2(M, X), Z)
qsort1(nil) -> nil
qsort1(add2(N, X)) -> f_33(split2(N, X), N, X)
f_33(pair2(Y, Z), N, X) -> append2(qsort1(Y), add2(X, qsort1(Z)))
lt2(0, s1(x0))
lt2(s1(x0), 0)
lt2(s1(x0), s1(x1))
append2(nil, x0)
append2(add2(x0, x1), x2)
split2(x0, nil)
split2(x0, add2(x1, x2))
f_14(pair2(x0, x1), x2, x3, x4)
f_26(true, x0, x1, x2, x3, x4)
f_26(false, x0, x1, x2, x3, x4)
qsort1(nil)
qsort1(add2(x0, x1))
f_33(pair2(x0, x1), x2, x3)
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
↳ QDP
APPEND2(add2(N, X), Y) -> APPEND2(X, Y)
lt2(0, s1(X)) -> true
lt2(s1(X), 0) -> false
lt2(s1(X), s1(Y)) -> lt2(X, Y)
append2(nil, Y) -> Y
append2(add2(N, X), Y) -> add2(N, append2(X, Y))
split2(N, nil) -> pair2(nil, nil)
split2(N, add2(M, Y)) -> f_14(split2(N, Y), N, M, Y)
f_14(pair2(X, Z), N, M, Y) -> f_26(lt2(N, M), N, M, Y, X, Z)
f_26(true, N, M, Y, X, Z) -> pair2(X, add2(M, Z))
f_26(false, N, M, Y, X, Z) -> pair2(add2(M, X), Z)
qsort1(nil) -> nil
qsort1(add2(N, X)) -> f_33(split2(N, X), N, X)
f_33(pair2(Y, Z), N, X) -> append2(qsort1(Y), add2(X, qsort1(Z)))
lt2(0, s1(x0))
lt2(s1(x0), 0)
lt2(s1(x0), s1(x1))
append2(nil, x0)
append2(add2(x0, x1), x2)
split2(x0, nil)
split2(x0, add2(x1, x2))
f_14(pair2(x0, x1), x2, x3, x4)
f_26(true, x0, x1, x2, x3, x4)
f_26(false, x0, x1, x2, x3, x4)
qsort1(nil)
qsort1(add2(x0, x1))
f_33(pair2(x0, x1), x2, x3)
The following pairs can be strictly oriented and are deleted.
The remaining pairs can at least by weakly be oriented.
APPEND2(add2(N, X), Y) -> APPEND2(X, Y)
[APPEND1, add1]
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
↳ QDP
lt2(0, s1(X)) -> true
lt2(s1(X), 0) -> false
lt2(s1(X), s1(Y)) -> lt2(X, Y)
append2(nil, Y) -> Y
append2(add2(N, X), Y) -> add2(N, append2(X, Y))
split2(N, nil) -> pair2(nil, nil)
split2(N, add2(M, Y)) -> f_14(split2(N, Y), N, M, Y)
f_14(pair2(X, Z), N, M, Y) -> f_26(lt2(N, M), N, M, Y, X, Z)
f_26(true, N, M, Y, X, Z) -> pair2(X, add2(M, Z))
f_26(false, N, M, Y, X, Z) -> pair2(add2(M, X), Z)
qsort1(nil) -> nil
qsort1(add2(N, X)) -> f_33(split2(N, X), N, X)
f_33(pair2(Y, Z), N, X) -> append2(qsort1(Y), add2(X, qsort1(Z)))
lt2(0, s1(x0))
lt2(s1(x0), 0)
lt2(s1(x0), s1(x1))
append2(nil, x0)
append2(add2(x0, x1), x2)
split2(x0, nil)
split2(x0, add2(x1, x2))
f_14(pair2(x0, x1), x2, x3, x4)
f_26(true, x0, x1, x2, x3, x4)
f_26(false, x0, x1, x2, x3, x4)
qsort1(nil)
qsort1(add2(x0, x1))
f_33(pair2(x0, x1), x2, x3)
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
LT2(s1(X), s1(Y)) -> LT2(X, Y)
lt2(0, s1(X)) -> true
lt2(s1(X), 0) -> false
lt2(s1(X), s1(Y)) -> lt2(X, Y)
append2(nil, Y) -> Y
append2(add2(N, X), Y) -> add2(N, append2(X, Y))
split2(N, nil) -> pair2(nil, nil)
split2(N, add2(M, Y)) -> f_14(split2(N, Y), N, M, Y)
f_14(pair2(X, Z), N, M, Y) -> f_26(lt2(N, M), N, M, Y, X, Z)
f_26(true, N, M, Y, X, Z) -> pair2(X, add2(M, Z))
f_26(false, N, M, Y, X, Z) -> pair2(add2(M, X), Z)
qsort1(nil) -> nil
qsort1(add2(N, X)) -> f_33(split2(N, X), N, X)
f_33(pair2(Y, Z), N, X) -> append2(qsort1(Y), add2(X, qsort1(Z)))
lt2(0, s1(x0))
lt2(s1(x0), 0)
lt2(s1(x0), s1(x1))
append2(nil, x0)
append2(add2(x0, x1), x2)
split2(x0, nil)
split2(x0, add2(x1, x2))
f_14(pair2(x0, x1), x2, x3, x4)
f_26(true, x0, x1, x2, x3, x4)
f_26(false, x0, x1, x2, x3, x4)
qsort1(nil)
qsort1(add2(x0, x1))
f_33(pair2(x0, x1), x2, x3)
The following pairs can be strictly oriented and are deleted.
The remaining pairs can at least by weakly be oriented.
LT2(s1(X), s1(Y)) -> LT2(X, Y)
trivial
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
lt2(0, s1(X)) -> true
lt2(s1(X), 0) -> false
lt2(s1(X), s1(Y)) -> lt2(X, Y)
append2(nil, Y) -> Y
append2(add2(N, X), Y) -> add2(N, append2(X, Y))
split2(N, nil) -> pair2(nil, nil)
split2(N, add2(M, Y)) -> f_14(split2(N, Y), N, M, Y)
f_14(pair2(X, Z), N, M, Y) -> f_26(lt2(N, M), N, M, Y, X, Z)
f_26(true, N, M, Y, X, Z) -> pair2(X, add2(M, Z))
f_26(false, N, M, Y, X, Z) -> pair2(add2(M, X), Z)
qsort1(nil) -> nil
qsort1(add2(N, X)) -> f_33(split2(N, X), N, X)
f_33(pair2(Y, Z), N, X) -> append2(qsort1(Y), add2(X, qsort1(Z)))
lt2(0, s1(x0))
lt2(s1(x0), 0)
lt2(s1(x0), s1(x1))
append2(nil, x0)
append2(add2(x0, x1), x2)
split2(x0, nil)
split2(x0, add2(x1, x2))
f_14(pair2(x0, x1), x2, x3, x4)
f_26(true, x0, x1, x2, x3, x4)
f_26(false, x0, x1, x2, x3, x4)
qsort1(nil)
qsort1(add2(x0, x1))
f_33(pair2(x0, x1), x2, x3)
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
SPLIT2(N, add2(M, Y)) -> SPLIT2(N, Y)
lt2(0, s1(X)) -> true
lt2(s1(X), 0) -> false
lt2(s1(X), s1(Y)) -> lt2(X, Y)
append2(nil, Y) -> Y
append2(add2(N, X), Y) -> add2(N, append2(X, Y))
split2(N, nil) -> pair2(nil, nil)
split2(N, add2(M, Y)) -> f_14(split2(N, Y), N, M, Y)
f_14(pair2(X, Z), N, M, Y) -> f_26(lt2(N, M), N, M, Y, X, Z)
f_26(true, N, M, Y, X, Z) -> pair2(X, add2(M, Z))
f_26(false, N, M, Y, X, Z) -> pair2(add2(M, X), Z)
qsort1(nil) -> nil
qsort1(add2(N, X)) -> f_33(split2(N, X), N, X)
f_33(pair2(Y, Z), N, X) -> append2(qsort1(Y), add2(X, qsort1(Z)))
lt2(0, s1(x0))
lt2(s1(x0), 0)
lt2(s1(x0), s1(x1))
append2(nil, x0)
append2(add2(x0, x1), x2)
split2(x0, nil)
split2(x0, add2(x1, x2))
f_14(pair2(x0, x1), x2, x3, x4)
f_26(true, x0, x1, x2, x3, x4)
f_26(false, x0, x1, x2, x3, x4)
qsort1(nil)
qsort1(add2(x0, x1))
f_33(pair2(x0, x1), x2, x3)
The following pairs can be strictly oriented and are deleted.
The remaining pairs can at least by weakly be oriented.
SPLIT2(N, add2(M, Y)) -> SPLIT2(N, Y)
[SPLIT1, add1]
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
lt2(0, s1(X)) -> true
lt2(s1(X), 0) -> false
lt2(s1(X), s1(Y)) -> lt2(X, Y)
append2(nil, Y) -> Y
append2(add2(N, X), Y) -> add2(N, append2(X, Y))
split2(N, nil) -> pair2(nil, nil)
split2(N, add2(M, Y)) -> f_14(split2(N, Y), N, M, Y)
f_14(pair2(X, Z), N, M, Y) -> f_26(lt2(N, M), N, M, Y, X, Z)
f_26(true, N, M, Y, X, Z) -> pair2(X, add2(M, Z))
f_26(false, N, M, Y, X, Z) -> pair2(add2(M, X), Z)
qsort1(nil) -> nil
qsort1(add2(N, X)) -> f_33(split2(N, X), N, X)
f_33(pair2(Y, Z), N, X) -> append2(qsort1(Y), add2(X, qsort1(Z)))
lt2(0, s1(x0))
lt2(s1(x0), 0)
lt2(s1(x0), s1(x1))
append2(nil, x0)
append2(add2(x0, x1), x2)
split2(x0, nil)
split2(x0, add2(x1, x2))
f_14(pair2(x0, x1), x2, x3, x4)
f_26(true, x0, x1, x2, x3, x4)
f_26(false, x0, x1, x2, x3, x4)
qsort1(nil)
qsort1(add2(x0, x1))
f_33(pair2(x0, x1), x2, x3)
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
F_33(pair2(Y, Z), N, X) -> QSORT1(Y)
QSORT1(add2(N, X)) -> F_33(split2(N, X), N, X)
F_33(pair2(Y, Z), N, X) -> QSORT1(Z)
lt2(0, s1(X)) -> true
lt2(s1(X), 0) -> false
lt2(s1(X), s1(Y)) -> lt2(X, Y)
append2(nil, Y) -> Y
append2(add2(N, X), Y) -> add2(N, append2(X, Y))
split2(N, nil) -> pair2(nil, nil)
split2(N, add2(M, Y)) -> f_14(split2(N, Y), N, M, Y)
f_14(pair2(X, Z), N, M, Y) -> f_26(lt2(N, M), N, M, Y, X, Z)
f_26(true, N, M, Y, X, Z) -> pair2(X, add2(M, Z))
f_26(false, N, M, Y, X, Z) -> pair2(add2(M, X), Z)
qsort1(nil) -> nil
qsort1(add2(N, X)) -> f_33(split2(N, X), N, X)
f_33(pair2(Y, Z), N, X) -> append2(qsort1(Y), add2(X, qsort1(Z)))
lt2(0, s1(x0))
lt2(s1(x0), 0)
lt2(s1(x0), s1(x1))
append2(nil, x0)
append2(add2(x0, x1), x2)
split2(x0, nil)
split2(x0, add2(x1, x2))
f_14(pair2(x0, x1), x2, x3, x4)
f_26(true, x0, x1, x2, x3, x4)
f_26(false, x0, x1, x2, x3, x4)
qsort1(nil)
qsort1(add2(x0, x1))
f_33(pair2(x0, x1), x2, x3)